home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-meyer-demandrouting-01.txt < prev    next >
Text File  |  1993-06-07  |  63KB  |  1,793 lines

  1.  
  2.  
  3.  
  4. Network Working Group                                         G.M. Meyer
  5. Internet Draft                                            Spider Systems
  6. Expires Nov 15, 1993                                            May 1993
  7.  
  8.  
  9.         Routing over Demand Circuits on Wide Area Networks - RIP
  10.  
  11.  
  12. Status of this Memo
  13.  
  14.    This memo is being distributed to members of the Internet community
  15.    in order to solicit their reactions to the proposals contained in it.
  16.  
  17.    This document is an Internet Draft.  Internet Drafts are working
  18.    documents of the Internet Engineering Task Force (IETF), its Areas,
  19.    and its Working Groups.  Note that other groups may also distribute
  20.    working documents as Internet Drafts.  Internet Drafts are draft
  21.    documents valid for a maximum of six months.  Internet Drafts may be
  22.    updated, replaced, or obsoleted by other documents at any time.  It
  23.    is not appropriate to use Internet Drafts as reference material or to
  24.    cite them other than as a ``working draft'' or ``work in progress.''
  25.    Please check the 1id-abstracts.txt listing contained in the
  26.    internet-drafts Shadow Directories on nic.ddn.mil, nnsc.nsf.net,
  27.    nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the
  28.    current status of any Internet Draft.
  29.  
  30.    Distribution of this memo is unlimited.
  31.  
  32. Abstract
  33.  
  34.    Running routing protocols on connection oriented Public Data
  35.    Networks, for example X.25 packet switched networks or ISDN, can be
  36.    expensive if the standard form of periodic broadcasting of routing
  37.    information is adhered to.  The high cost arises because a connection
  38.    has to all practical intents and purposes be kept open to every
  39.    destination to which routing information is to be sent, whether or
  40.    not it is being used to carry user data.
  41.  
  42.    Routing information may also fail to be propagated if the number of
  43.    destinations to which the routing information is to be sent exceeds
  44.    the number of channels available to the router on the Wide Area
  45.    Network (WAN).
  46.  
  47.    This memo defines a generalized modification which can be applied to
  48.    Bellman-Ford (or distance vector) algorithm information broadcasting
  49.    protocols, for example IP RIP, Netware RIP or Netware SAP, which
  50.    overcomes the limitations of the traditional methods described above.
  51.    The routing protocols support a purely triggered update mechanism on
  52.  
  53.  
  54.  
  55. Meyer                                                           [Page 1]
  56.  
  57. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  58.  
  59.  
  60.    demand circuits on WANs.  The protocols run UNMODIFIED on LANs or
  61.    fixed point-to-point links.
  62.  
  63.    Routing information is sent on the WAN when the routing database is
  64.    modified by new routing information received from another interface.
  65.    When this happens a (triggered) update is sent to a list of
  66.    destinations on other WAN interfaces.  Because routing protocols are
  67.    datagram based they are not guaranteed to be received by the peer
  68.    router on the WAN.  An acknowledgement and retransmission mechanism
  69.    is provided to ensure that routing updates are received.
  70.  
  71.    To avoid unnecessary load when a connection to a destination is not
  72.    currently available (possibly because of channel starvation) the
  73.    circuit manager advises the routing applications on the reachability
  74.    and non-reachability of destinations on the WAN.
  75.  
  76. Acknowledgements
  77.  
  78.    I would like to thank colleagues at Spider, in particular Richard
  79.    Edmonstone and Tom Daniel, for discussions and comments which helped
  80.    to clarify this memo.
  81.  
  82. Conventions
  83.  
  84.    The following language conventions are used in the items of
  85.    specification in this document:
  86.  
  87.    o  MUST -- the item is an absolute requirement of the specification.
  88.       MUST is only used where it is actually required for interopera-
  89.       tion, not to try to impose a particular method on implementors
  90.       where not required for interoperability.
  91.  
  92.    o  SHOULD -- the item should be followed for all but exceptional cir-
  93.       cumstances.
  94.  
  95.    o  MAY or optional -- the item is truly optional and may be followed
  96.       or ignored according to the needs of the implementor.
  97.  
  98.       The words "should" and "may" are also used, in lower case, in
  99.       their more ordinary senses.
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. Meyer                                                           [Page 2]
  112.  
  113. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  114.  
  115.  
  116.  
  117.                           Table of Contents
  118.  
  119.       1. Introduction ...........................................  4
  120.  
  121.       2. Running a routing Protocol on the WAN ..................  6
  122.           2.1. Overview .........................................  6
  123.           2.2. Presumption of Reachability ......................  8
  124.           2.3. WAN Router list ..................................  8
  125.           2.4. Triggered Updates and Unreliable Delivery ........  9
  126.           2.5. Guaranteeing delivery of Routing Updates .........  9
  127.           2.6. The Routing Database ............................. 10
  128.           2.7. New Packet Types ................................. 11
  129.           2.8. Fragmentation .................................... 13
  130.           2.9. Preventing Queue Overload ........................ 14
  131.  
  132.       3. IP Routing Information Protocol Version 1 .............. 15
  133.  
  134.       4. IP Routing Information Protocol Version 2 .............. 18
  135.  
  136.       5. Netware Routing Information Protocol ................... 19
  137.  
  138.       6. Netware Service Advertising Protocol ................... 23
  139.  
  140.       7. Timers ................................................. 27
  141.           7.1. Database Timer ................................... 27
  142.           7.2. Retransmission Timer ............................. 28
  143.           7.3. Reassembly Timer ................................. 29
  144.  
  145.       8. Implementation Considerations ...........................30
  146.  
  147.       9. Security Considerations ................................ 31
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. Meyer                                                           [Page 3]
  168.  
  169. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  170.  
  171.  
  172. 1. Introduction
  173.  
  174.    Routers are used on connection oriented networks, such as X.25 packet
  175.    switched networks and ISDN networks, to allow potential connectivity
  176.    to a large number of remote destinations.  Circuits on the Wide Area
  177.    Network (WAN) are established on demand and are relinquished when the
  178.    traffic subsides.  Depending on the application, the connection
  179.    between any two sites for user data might actually be short and rela-
  180.    tively infrequent.
  181.  
  182.    Practical experience of routing shows that periodic 'broadcasting' of
  183.    routing updates on the WAN is unsatisfactory on several counts:
  184.  
  185.    o  Running a routing protocol like RIP is expensive if the standard
  186.       form of transmitting routing information to every next hop router
  187.       every 30 seconds is adhered to.  The more routers there are wish-
  188.       ing to exchange information the worse the problem.  If there are N
  189.       routers on the WAN, N * (N - 1) routing updates are sent over N *
  190.       (N - 1)/2 connections every broadcast period.
  191.  
  192.       The expense arises because a circuit has to be kept open to each
  193.       destination to which routing information is to be sent.  Routing
  194.       updates are sufficiently frequent that little benefit is obtain-
  195.       able on most networks by attempting to set up a call purely for
  196.       the duration of the routing update. (There are often minimum call
  197.       charges, or there is a charge to set up a call irrespective of
  198.       what data is sent.)
  199.  
  200.       The option of reducing the 'broadcast' frequency, while reducing
  201.       the cost, would make the system less responsive.
  202.  
  203.    o  The number of networks to be connected (N) on the WAN can easily
  204.       exceed the number of simultaneous calls (M) which the interface
  205.       can support.  If this happens the routing 'broadcast' will only
  206.       reach M next hop routers, and (N - M) next hop routers will not
  207.       receive the routing update.
  208.  
  209.       A basic rate ISDN interface can support 2 simultaneous calls, and
  210.       even the number of logical channels most users subscribe to on an
  211.       X.25 network is not large.  There is no fundamental reason why
  212.       routing protocols should restrict the user to routing between so
  213.       few sites.
  214.  
  215.    o  Since there is no broadcast facility on the WAN, 'broadcasting' of
  216.       routing information actually consists of sending the updates
  217.       separately to all known locations.  This means that N routing
  218.       updates are queued for transmission on the WAN link (in addition
  219.       to any data which might be queued).
  220.  
  221.  
  222.  
  223. Meyer                                                           [Page 4]
  224.  
  225. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  226.  
  227.  
  228.       Routers take a pragmatic view on queuing datagrams for the WAN.
  229.       If the queue length gets too long, so that datagrams at the end of
  230.       the queue would take too long be transmitted in a reasonable time
  231.       (say 1 to 2 seconds) the router may start discarding them.  On an
  232.       X.25 network, with slow line speeds (perhaps 9600 baud), it may
  233.       not take too many routing updates to fulfill this condition if the
  234.       link is also actively being used to carry user data.
  235.  
  236.    This memo addresses all the above problems.
  237.  
  238.    The approach taken is to modify the routing protocols so as to send
  239.    information on the WAN only when there has been an update to the
  240.    routing database OR a change in the reachability of a next hop router
  241.    is indicated by the task which manages connections on the WAN.
  242.  
  243.    Because datagrams are not guaranteed to get through on all WAN media,
  244.    an acknowledgement and retransmission system is required to provide
  245.    reliability.
  246.  
  247.    This memo describes the modifications required for Bellman-Ford (or
  248.    distance vector) algorithm information broadcasting protocols, such
  249.    as IP RIP [1,2] or Netware RIP and SAP [3] on the WAN.  The protocols
  250.    run unmodified on Local Area Networks (LANs) or fixed point-to-point
  251.    links, and so interoperate transparently with implementations adher-
  252.    ing to the original specifications.
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279. Meyer                                                           [Page 5]
  280.  
  281. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  282.  
  283.  
  284. 2. Running Routing Protocols on the WAN
  285.  
  286. 2.1 Overview
  287.  
  288.    Multiprotocol routers are used on connection oriented Wide Area Net-
  289.    works (WANs), such as X.25 packet switched networks and ISDN net-
  290.    works, to interconnect LANs.  By using the multiplexing properties of
  291.    the underlying WAN technology, several LANs can be interconnected
  292.    simultaneously through a single physical interface on the router.
  293.  
  294.    A circuit manager provides an interface between the connectionless
  295.    network layers (IP, IPX, CLNP etc) and the connection oriented WAN
  296.    (X.25 or ISDN).  Figure 1 shows a schematic representative stack
  297.    showing the relationship between routing protocols, the network
  298.    layers, the circuit manager and the connection oriented WAN.
  299.  
  300.  
  301.              --------------           ---------  ---------
  302.              |    RIP     |           |  RIP  |  |  SAP  |
  303.              --------------           ---------  ---------
  304.                    |                      |          |
  305.              --------------               |          |
  306.              |    UDP     |               |          |
  307.              --------------               |          |
  308.                    |                      |          |
  309.              --------------             ----------------
  310.              |    IP      |             |     IPX      |
  311.              --------------             ----------------
  312.                    |                           |
  313.              -------------------------------------------
  314.              |             Circuit Manager             |
  315.              -------------------------------------------
  316.                               ||||||||||
  317.                               ||||||||||
  318.                       ---------------------------
  319.                       |   Connection Oriented   |
  320.                       |        WAN stack        |
  321.                       ---------------------------
  322.  
  323.      A WAN circuit manager will support a variety of network layer  pro-
  324.      tocols,  on  its  upper  interface.  On its lower interface, it may
  325.      support one or more subnetworks.  A subnetwork may support a number
  326.      of Virtual Circuits.
  327.  
  328.  
  329.             Figure 1.   Representative Multiprotocol Router stack
  330.  
  331.  
  332.  
  333.  
  334.  
  335. Meyer                                                           [Page 6]
  336.  
  337. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  338.  
  339.  
  340.    The router has a translation table which relates the network layer
  341.    address of the next hop router to the physical address used to estab-
  342.    lish a Virtual Circuit (VC) to it.  Datagrams may be encapsulated in
  343.    a header to distinguish the network layer protocol [5].
  344.  
  345.    The circuit manager takes datagrams from the connectionless network
  346.    layer protocols and (if one is not currently available) opens a VC to
  347.    the next hop router.  A VC can carry all traffic between two end-
  348.    point routers for a given network layer protocol (or with appropriate
  349.    encapsulation all network layer protocols).  An idle timer is used to
  350.    close the VC when the datagrams stop arriving at the circuit manager.
  351.  
  352.    Running routing protocols on the WAN has traditionally consisted of
  353.    making small modifications to the methods used on LANs.  Where rout-
  354.    ing information would be broadcast periodically on a LAN interface,
  355.    it is converted to a series of periodic updates sent to a list of
  356.    addresses on the WAN.
  357.  
  358.    This memo targets two areas:
  359.  
  360.    o  Eliminating the overkill inherent in periodic transmission of
  361.       routing updates.
  362.  
  363.    o  Overcoming the bandwidth limitations on the WAN: the number of
  364.       simultaneous VCs to next hop routers and restricted data
  365.       throughput which the WAN link can support.
  366.  
  367.    The first of these is overcome by transmitting routing updates
  368.    (called routing responses) only when required:
  369.  
  370.    o  Firstly when a specific request for a routing update has been
  371.       received.
  372.  
  373.    o  Secondly when the routing database is modified by new information
  374.       from another interface.
  375.  
  376.       Update information received in this way is not normally propagated
  377.       on other interfaces immediately, but is delayed for a few seconds
  378.       to allow information from several updates to be grouped.
  379.  
  380.    o  Thirdly when the circuit manager indicates that a destination has
  381.       changed from an unreachable (circuit down) to a reachable (circuit
  382.       up) state.
  383.  
  384.    Because of the inherent unreliability of a datagram based system,
  385.    both routing requests and routing responses require acknowledgement,
  386.    and retransmission in the event of NOT receiving an acknowledgement.
  387.  
  388.  
  389.  
  390.  
  391. Meyer                                                           [Page 7]
  392.  
  393. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  394.  
  395.  
  396.    To overcome the bandwidth limitations the routing application can
  397.    perform a form of self-imposed flow control, to spread routing
  398.    updates out over a period of time.
  399.  
  400. 2.2 Presumption of Reachability
  401.  
  402.    If a routing update is received from a next hop router on the WAN,
  403.    entries in the update are thereafter always considered to be reach-
  404.    able, unless proven otherwise:
  405.  
  406.    o  If in the normal course of routing datagrams, the circuit manager
  407.       fails to establish a connection to the next hop router, it noti-
  408.       fies the routing application that the next hop router is not
  409.       reachable through an internal circuit down message.
  410.  
  411.       The routing application then goes through a process of timing out
  412.       database entries to make them unreachable in the routing sense.
  413.  
  414.    o  If the circuit manager is subsequently able to establish a connec-
  415.       tion to the next hop router, it will notify the routing applica-
  416.       tion that the next hop router is reachable through an internal
  417.       circuit up message.
  418.  
  419.       The routing application will then exchange messages with the next
  420.       hop router so as to re-prime their respective routing databases
  421.       with up-to-date information.
  422.  
  423.    Handling of circuit up and circuit down messages requires that the
  424.    circuit manager takes responsibility for establishing (or re-
  425.    establishing) the connection in the event of a next hop router becom-
  426.    ing unreachable.  A description of the processes the circuit manager
  427.    adopts to perform this task is outside the scope of this memo.
  428.  
  429. 2.3 WAN Router list
  430.  
  431.    The routing task MAY be provided with a list of routers to send rout-
  432.    ing updates to on the WAN.  It will comprise of the logical addresses
  433.    of next hop routers for which the router has a logical to physical
  434.    address mapping.  Entries in the list SHOULD be categorized (on a
  435.    per-peer basis) as follows:
  436.  
  437.    o  Running the standard routing protocol, namely transmitting updates
  438.       periodically with the packet formats used in LAN broadcasts.
  439.  
  440.       This option is supported to allow interoperability with existing
  441.       routing implementations, and might also be appropriate if some of
  442.       the destinations are using Permanent Virtual Circuits (PVCs)
  443.       rather than SVCs.
  444.  
  445.  
  446.  
  447. Meyer                                                           [Page 8]
  448.  
  449. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  450.  
  451.  
  452.    o  Running the triggered update routing protocol proposed in this
  453.       memo.
  454.  
  455.    Omitting an address from both of these categories is equivalent to
  456.    not running the routing protocols.
  457.  
  458.    If routing packets arrive from a destination not supporting the
  459.    appropriate variant they MUST be discarded.
  460.  
  461. 2.4 Triggered Updates and Unreliable Delivery
  462.  
  463.    If triggered update information is sent to next hop routers on the
  464.    WAN only once it can fail to arrive for one of the following reasons:
  465.  
  466.    o  A free VC resource might not be available, because of a restricted
  467.       number of X.25 logical channels or ISDN B-channels.
  468.  
  469.    o  The transmit queue might be full - requiring the datagram to be
  470.       discarded.
  471.  
  472.    o  The VC might be pre-empted (in favour of establishing a VC to
  473.       another next hop router) while the datagram is in a queue, result-
  474.       ing in the queue being flushed and the datagram discarded.
  475.  
  476.    o  In cases where the method of transport is not guaranteed, for
  477.       example with PPP where there is no acknowledgement and retransmis-
  478.       sion of HDLC frames, a corrupted frame will result in the loss of
  479.       the datagram.
  480.  
  481. 2.5 Guaranteeing delivery of Routing Updates
  482.  
  483.    To guarantee delivery of routing updates on the WAN an acknowledge-
  484.    ment and retransmission scheme MUST be used:
  485.  
  486.    o  Send a routing update to a next hop router on the WAN.
  487.  
  488.    o  The other router responds with an acknowledgement packet.
  489.  
  490.       The original router receives the acknowledgement.
  491.  
  492.    o  Otherwise the original router retransmits the update until an ack-
  493.       nowledgement is received.
  494.  
  495.       Retransmission timer values are covered in section 7.
  496.  
  497.       In cases where the routing database is modified before an ack-
  498.       nowledgement is received a new routing update with an updated
  499.       sequence number is sent out.  If an acknowledgement for the old
  500.  
  501.  
  502.  
  503. Meyer                                                           [Page 9]
  504.  
  505. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  506.  
  507.  
  508.       routing update is received it is ignored.
  509.  
  510.    o  A router only updates its routing database when it receives a com-
  511.       plete update, which may consist of several fragments.  Each frag-
  512.       ment is individually acknowledged.
  513.  
  514.    The above mechanism caters for cases where the datagram is lost
  515.    because of a frame error or is discarded because of an over-full
  516.    queue.  The routing update and acknowledgment will eventually both
  517.    get through.
  518.  
  519.    In cases where the circuit manager cannot establish a connection, a
  520.    mechanism is provided to allow the circuit manager to inform the
  521.    routing task of the failure to make a connection so that it can
  522.    suppress retransmissions until a circuit becomes available.
  523.  
  524. 2.6 The Routing Database
  525.  
  526.    A requirement of using triggered updates for propagating routing
  527.    information is that NO routing information ever gets LOST or DIS-
  528.    CARDED.
  529.  
  530.    The routing database MUST adopt one of the following strategies:
  531.  
  532.    o  It must keep ALL alternative routing information it learns from
  533.       any routing updates from the LAN and the WAN, so that if the best
  534.       route disappears an alternative route (if available) can replace
  535.       it as the new best route.
  536.  
  537.    o  If the amount of memory this consumes is problematic the routing
  538.       application must keep SOME alternative routing information - say a
  539.       best route and two alternatives.
  540.  
  541.       If the router ever has to discard routing information about a
  542.       route it should note the fact.   If the routes that have been kept
  543.       disappear because they have become unreachable, the router MUST
  544.       issue a request on all interfaces to try and obtain discarded
  545.       alternatives.
  546.  
  547.       It is recommended that the request is issued BEFORE all routes to
  548.       a destination have been lost.
  549.  
  550.    Entries in the routing database can either be permanent or temporary.
  551.    Entries learned from broadcasts on LANs are temporary. They will
  552.    expire if not periodically refreshed by further broadcasts.
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559. Meyer                                                          [Page 10]
  560.  
  561. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  562.  
  563.  
  564.    Entries learned from a triggered response on the WAN are 'permanent'.
  565.    They MUST not time out in the normal course of events.  The entries
  566.    state MUST be changed to 'temporary' by the following events:
  567.  
  568.    o  The arrival of a routing update containing the entry set to
  569.       unreachable.
  570.  
  571.       The normal hold down timer MUST be started, after which the entry
  572.       disappears from the routing database.
  573.  
  574.    o  The arrival of a routing update with the entry absent.
  575.  
  576.       If the hold down timer is not already running, the entry MUST be
  577.       set to unreachable and the hold down timer started.
  578.  
  579.    o  A message sent from the circuit manager, to indicate that it
  580.       failed to make a connection in normal running.
  581.  
  582.       The routing table MUST be scanned for all routes via that next hop
  583.       router.  Aging of these routing entries MUST commence.  If the
  584.       aging timer expires the entry MUST be set to unreachable and the
  585.       hold down timer started.  If the hold down timer expires the entry
  586.       disappears from the routing database.
  587.  
  588.    o  If the interface goes down, the circuit manager should indicate
  589.       that all circuits on that interface have gone down.
  590.  
  591.    Database timer values are covered in section 7.
  592.  
  593. 2.7 New Packet Types
  594.  
  595.    To support triggered updates, three new packet types MUST be sup-
  596.    ported:
  597.  
  598.    TRIGGERED REQUEST
  599.  
  600.              A request to the responding system to send all appropriate
  601.              elements in its routing database.
  602.  
  603.              A triggered request is retransmitted at periodic intervals
  604.              until a triggered response is received.
  605.  
  606.              Routing requests are transmitted in the following cir-
  607.              cumstances:
  608.  
  609.              o  Firstly when the router is powered on.
  610.  
  611.              o  Secondly when the circuit manager indicates a
  612.  
  613.  
  614.  
  615. Meyer                                                          [Page 11]
  616.  
  617. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  618.  
  619.  
  620.                 destination has been in an unreachable (circuit down)
  621.                 state for an extended period and changes to a reachable
  622.                 (circuit up) state.
  623.  
  624.              o  Thirdly in the event of all routing update fragments
  625.                 failing to arrive within a set period.
  626.  
  627.              o  It may also send triggered requests at other times to
  628.                 compensate for discarding non-optimal routing informa-
  629.                 tion.
  630.  
  631.    TRIGGERED RESPONSE
  632.  
  633.              A message containing all appropriate elements of the rout-
  634.              ing database.  An appropriate element is an entry NOT
  635.              learned from the interface to which the routing information
  636.              is being sent out.  This is known as "split horizon".
  637.  
  638.              Stability is improved by adding "poisoned reverse" on
  639.              routes learned from a destination.  This consists of also
  640.              including some routes learned from a destination in routing
  641.              updates sent back to that destination, but setting the
  642.              routes as unreachable.  A route is only poisoned if it is
  643.              the best route (rather than an inferior alternative route)
  644.              in the database.
  645.  
  646.              A triggered response message may be sent in response to a
  647.              triggered request, or it may be an update message issued
  648.              because of a change in the routing database.
  649.  
  650.              A triggered response is retransmitted at periodic intervals
  651.              until a triggered acknowledgement is received.
  652.  
  653.    TRIGGERED ACKNOWLEDGEMENT
  654.  
  655.              A message sent in response to every triggered response
  656.              packet received.
  657.  
  658.    Triggered response and triggered acknowledgement packets MUST contain
  659.    additional fields for a sequence number, fragment number and number
  660.    of fragments.
  661.  
  662.    If a triggered request or response is not acknowledged after 10
  663.    retransmissions, routes to the destination should be marked as
  664.    unreachable for the duration of a hold down timer before being
  665.    deleted.
  666.  
  667.    The destination should then be polled at a lower frequency using
  668.  
  669.  
  670.  
  671. Meyer                                                          [Page 12]
  672.  
  673. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  674.  
  675.  
  676.    triggered request packets.  When a triggered response is received,
  677.    the router should prime the next hop router my sending its routing
  678.    database through triggered response packets.
  679.  
  680.    Strictly speaking polling should occur indefinitely to guarantee
  681.    database integrity.  However the administrator MAY wish the router to
  682.    cease polling after a few attempts believing that the lack of
  683.    response is due to a mis-configuration of the next hop router.  The
  684.    destination should be marked as NOT supporting the mechanism and no
  685.    further routing messages should be sent to that destination.
  686.  
  687.    Before marking the destination as not supporting the mechanism, at
  688.    least 5 triggered request polls (without acknowledgement) should be
  689.    sent.
  690.  
  691.    If a destination marked as not supporting the mechanism, subsequently
  692.    sends a valid 'triggered' message, the destination should be marked
  693.    as supporting the mechanism once more (to allow for the next hop
  694.    router's configuration being changed).  It should be sent a triggered
  695.    request and a triggered response to obtain and propagate up-to-date
  696.    routing information.
  697.  
  698. 2.8 Fragmentation
  699.  
  700.    If a routing update is sufficiently large, the information MUST be
  701.    fragmented over several triggered response packets:
  702.  
  703.    o  Each fragment MUST be individually acknowledged with a triggered
  704.       acknowledgement packet.
  705.  
  706.       The sender of the routing update MUST periodically retransmit
  707.       fragments which have not been acknowledged (or until the destina-
  708.       tion is marked as not supporting the mechanism).
  709.  
  710.    o  A router receiving fragments MUST re-assemble them before updating
  711.       its routing database.
  712.  
  713.    o  If all fragments are not received within four times the retransmit
  714.       period, they MUST be discarded.
  715.  
  716.       A triggered request packet MUST then be sent to the originator of
  717.       the routing update.
  718.  
  719.       On receiving the triggered request packet, the originator of the
  720.       routing update MUST retransmit ALL fragments.
  721.  
  722.    o  If a fragment with an updated sequence number is received, ALL
  723.       fragments with the earlier sequence number MUST be discarded.
  724.  
  725.  
  726.  
  727. Meyer                                                          [Page 13]
  728.  
  729. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  730.  
  731.  
  732.       An updated sequence number is defined as any sequence number that
  733.       is different.  There is no concept of the value of the sequence
  734.       number conveying its age.
  735.  
  736.    Fragmentation timer values are covered in section 7.
  737.  
  738. 2.9 Preventing Queue Overload
  739.  
  740.    In order to prevent too many routing messages being queued at a WAN
  741.    interface, the routing task MAY operate a scheme whereby 'broadcast-
  742.    ing' of a triggered request or triggered response to a WAN interface
  743.    is staggered.  All routing requests or routing responses are not sent
  744.    to ALL next hop routers on the interface in a single batch:
  745.  
  746.    o  The routing task should limit the number of outstanding triggered
  747.       request messages for which a triggered response has not been
  748.       received.
  749.  
  750.    o  The routing task should limit the number of outstanding triggered
  751.       response messages for which a triggered acknowledgement has not
  752.       been received.
  753.  
  754.    As outstanding messages are appropriately acknowledged, further mes-
  755.    sages can be sent out to other next hop routers, until all next hop
  756.    routers have been sent the message and have acknowledged it.
  757.  
  758.    The maximum number of outstanding messages transmitted without ack-
  759.    nowledgement is a function of the link speed and the number of other
  760.    routing protocols operating the triggered update mechanism.
  761.  
  762.    Messages should always be acknowledged immediately (even if it causes
  763.    the limit to be exceeded), since a connection is almost certainly
  764.    available.  This has the potential benefit of allowing the VC to
  765.    close sooner (on its idle timer).
  766.  
  767.    Sending all triggered request fragments to a destination at once is
  768.    also beneficial.
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783. Meyer                                                          [Page 14]
  784.  
  785. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  786.  
  787.  
  788. 3. IP Routing Information Protocol Version 1
  789.  
  790.    This section should be read in conjunction with reference [1].
  791.  
  792.    IP RIP is a UDP-based protocol which generally sends and receives
  793.    datagrams on UDP port number 520.
  794.  
  795.    To support the mechanism outlined in this proposal the packet format
  796.    for RIP version 1 [1] is modified as shown in Figure 2.
  797.  
  798.    Every Routing Information Protocol datagram contains the following:
  799.  
  800.    COMMAND   Commands supported in RIP Version 1 are: request (1),
  801.              response (2), traceon (3), traceoff (4), SUN reserved (5).
  802.              The fields sequence number, fragment number and number of
  803.              fragments MUST NOT be included in packets with these com-
  804.              mand values.
  805.  
  806.              The following new commands (with values in brackets) are
  807.              required:
  808.  
  809.        TRIGGERED REQUEST (6)
  810.  
  811.                  A request for the responding system to send all of its
  812.                  routing database.
  813.  
  814.                  Only the first 4 octets of the packet format shown in
  815.                  figure 2 are sent, since all routing information is
  816.                  implied by this request type.
  817.  
  818.        TRIGGERED RESPONSE (7)
  819.  
  820.                  A message containing all of the sender's routing data-
  821.                  base, excluding those entries learned from the inter-
  822.                  face to which the routing information is being sent.
  823.  
  824.                  This message may be sent in response to a triggered
  825.                  request, or it may be an update message resulting from
  826.                  a change in the routing database.
  827.  
  828.        TRIGGERED ACKNOWLEDGEMENT (8)
  829.  
  830.                  A message sent in response to every triggered response
  831.                  packet received.
  832.  
  833.                  Only the first 8 octets of the packet format shown in
  834.                  figure 2 are sent.
  835.  
  836.  
  837.  
  838.  
  839. Meyer                                                          [Page 15]
  840.  
  841. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  842.  
  843.  
  844.  
  845.      0                   1                   2                   3 3
  846.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  847.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  848.      | command (1)   | version (1)   |      must be zero (2)         |
  849.      +---------------+---------------+-------------------------------+
  850.  
  851.         The following new fields are inserted for some commands
  852.  
  853.      0                   1                   2                   3 3
  854.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  855.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  856.      |    sequence number (2)        | fragment (1)  |no of frags (1)|
  857.      +-------------------------------+-------------------------------+
  858.  
  859.           Followed by up to 25 routing entries (each 20 octets)
  860.  
  861.      0                   1                   2                   3 3
  862.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  863.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  864.      | address family identifier (2) |      must be zero (2)         |
  865.      +-------------------------------+-------------------------------+
  866.      |                         IP address (4)                        |
  867.      +---------------------------------------------------------------+
  868.      |                        must be zero (4)                       |
  869.      +---------------------------------------------------------------+
  870.      |                        must be zero (4)                       |
  871.      +---------------------------------------------------------------+
  872.      |                          metric (4)                           |
  873.      +---------------------------------------------------------------+
  874.                                      .
  875.                                      .
  876.  
  877.      The format of a IP RIP datagram in  octets,  with  each  tick  mark
  878.      representing one bit.    All fields are in network order.
  879.  
  880.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  881.      number of fragments (1) are not present in the original RIP specif-
  882.      ication.   They are only present if command takes the values  7  or
  883.      8.
  884.  
  885.  
  886.           Figure 2.   IP Routing Information Protocol packet format
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895. Meyer                                                          [Page 16]
  896.  
  897. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  898.  
  899.  
  900.    VERSION   In this instance Version 1.
  901.  
  902.    SEQUENCE NUMBER
  903.  
  904.              This is a new field inserted if command takes the values 7
  905.              or 8.
  906.  
  907.              The sequence number MUST be incremented every time updated
  908.              information is sent out on a WAN.  The sequence number
  909.              wraps round at 65535.
  910.  
  911.              When a triggered acknowledgement is sent the sequence
  912.              number is set to the same value as the triggered response
  913.              packet being acknowledged.
  914.  
  915.              The sequence number MUST be identical over fragments.  If a
  916.              fragment is retransmitted the sequence number MUST not
  917.              change.
  918.  
  919.    FRAGMENT NUMBER
  920.  
  921.              The fragment number is one for the first fragment of a
  922.              routing update, and is incremented for each subsequent
  923.              fragment.  A fragment can contain up to 25 routing entries.
  924.  
  925.              When a triggered acknowledgement is sent the fragment
  926.              number is set to the same value as the triggered response
  927.              packet being acknowledged.
  928.  
  929.    NUMBER OF FRAGMENTS
  930.  
  931.              In a triggered response packet this indicates the number of
  932.              packets required to complete the routing update.
  933.  
  934.              This field has no relevance for triggered acknowledgement
  935.              packets so should be set to zero.
  936.  
  937.    For triggered response packets the rest of the datagram contains a
  938.    list of destinations, with information about each.  Each entry in
  939.    this list contains the address family identifier (2 for IP), a desti-
  940.    nation network or host, and the metric for it.  The packet format is
  941.    intended to allow RIP to carry routing information  for several dif-
  942.    ferent protocols, identifiable by the family identifier.
  943.  
  944.    The IP address is the usual Internet address, stored as 4 octets in
  945.    network order.  The metric field contains a value between 1 and 15
  946.    inclusive, specifying the current metric for the destination, or the
  947.    value 16 (representing 'infinity'), which indicates that the
  948.  
  949.  
  950.  
  951. Meyer                                                          [Page 17]
  952.  
  953. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  954.  
  955.  
  956.    destination is not reachable.  Each route sent by a router supersedes
  957.    any previous route to the same destination from the same router.
  958.  
  959.    The maximum datagram size is 508 octets, excluding UDP and IP
  960.    headers.
  961.  
  962. 4. IP Routing Information Protocol Version 2
  963.  
  964.    An enhancement to IP RIP to include subnetting has recently become
  965.    available [2].  This section only describes differences from that
  966.    RFC.
  967.  
  968.    The triggered update mechanism can be supported by including the
  969.    triggered request (6), triggered response (7) and triggered ack-
  970.    nowledgement (8) commands described in the previous section.
  971.  
  972.    The sequence number, fragment number and number of fragments fields
  973.    are included in triggered response and triggered acknowledgement com-
  974.    mands.
  975.  
  976.    The triggered request packet should also contain the 4 extra octets
  977.    corresponding to the sequence number, fragment number and number of
  978.    fragments fields - but set to zero.
  979.  
  980.    Because additional security information is included in RIP Version 2
  981.    packets, this MUST be appended to the triggered request and triggered
  982.    acknowledgement packets, as well as being present in the triggered
  983.    response packet.
  984.  
  985.    The version number becomes 2.  Other aspects of packet layout follow
  986.    reference [2].
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007. Meyer                                                          [Page 18]
  1008.  
  1009. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1010.  
  1011.  
  1012. 5. Netware Routing Information Protocol
  1013.  
  1014.    This section should be read in conjunction with references [3], since
  1015.    it only describes differences from the specification.
  1016.  
  1017.    Netware [3] is the trade name of Novell Research's protocols for com-
  1018.    puter communication which are derived and extended from Xerox Network
  1019.    System's (XNS) protocols [4].
  1020.  
  1021.    Netware supports a mechanism that allows routers on an internetwork
  1022.    to exchange routing information using the Routing Information Proto-
  1023.    col (RIP) which runs over the Internetwork Packet Exchange (IPX) pro-
  1024.    tocol using socket number 453h.
  1025.  
  1026.    Netware RIP and IP RIP share a common heritage, in that they are both
  1027.    based on XNS RIP, but there is some divergence, mostly at the packet
  1028.    format level to reflect the differing addressing schemes.
  1029.  
  1030.    The triggered update mechanism can be applied to Netware RIP.  To
  1031.    support the mechanism outlined in this proposal the packet format for
  1032.    Netware RIP is modified as shown in Figure 3.
  1033.  
  1034.    Every datagram contains the following:
  1035.  
  1036.    RIP OPERATION
  1037.  
  1038.              Operations supported in standard Netware RIP are: request
  1039.              (1) and response (2).
  1040.  
  1041.              The fields sequence number, fragment number and number of
  1042.              fragments MUST NOT be included in packets with these opera-
  1043.              tion values.
  1044.  
  1045.              The following new operations are required (with values
  1046.              chosen to be the same as for IP RIP commands):
  1047.  
  1048.        TRIGGERED REQUEST (6)
  1049.  
  1050.                  A request for the responding system to send all of its
  1051.                  routing database.
  1052.  
  1053.                  Only the first 2 octets of the packet format shown in
  1054.                  figure 3 are sent, since all routing information is
  1055.                  implied by this request type.
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063. Meyer                                                          [Page 19]
  1064.  
  1065. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1066.  
  1067.  
  1068.  
  1069.      0                   1         1
  1070.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1071.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1072.      |       operation (2)           |
  1073.      +---------------+---------------+
  1074.  
  1075.         The following new fields are inserted for some operations
  1076.  
  1077.      0                   1                   2                   3 3
  1078.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1079.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1080.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  1081.      +-------------------------------+-------------------------------+
  1082.  
  1083.            Followed by up to 50 routing entries (each 8 octets)
  1084.  
  1085.      0                   1                   2                   3 3
  1086.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1087.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1088.      |                       network number (4)                      |
  1089.      +---------------------------------------------------------------+
  1090.      |       number of hops (2)      |      number of ticks (2)      |
  1091.      +---------------------------------------------------------------+
  1092.                                      .
  1093.                                      .
  1094.  
  1095.      The format of a Netware RIP datagram in octets, with each tick mark
  1096.      representing one bit.    All fields are in network order.
  1097.  
  1098.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  1099.      number of fragments (1) are not present in the original RIP specif-
  1100.      ication.   They are only present if operation takes the values 7 or
  1101.      8.
  1102.  
  1103.  
  1104.         Figure 3.   Netware Routing Information Protocol packet format
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119. Meyer                                                          [Page 20]
  1120.  
  1121. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1122.  
  1123.  
  1124.        TRIGGERED RESPONSE (7)
  1125.  
  1126.                  A message containing all of the sender's routing data-
  1127.                  base, excluding those entries learned from the inter-
  1128.                  face to which the routing information is being sent.
  1129.  
  1130.                  This message may be sent in response to a triggered
  1131.                  request, or it may be an update message resulting from
  1132.                  a change in the routing database.
  1133.  
  1134.        TRIGGERED ACKNOWLEDGEMENT (8)
  1135.  
  1136.                  A message sent in response to every triggered response
  1137.                  packet received.
  1138.  
  1139.                  Only the first 6 octets of the packet format shown in
  1140.                  figure 3 are sent.
  1141.  
  1142.    SEQUENCE NUMBER
  1143.  
  1144.              This is a new field inserted if operation takes the values
  1145.              7 or 8.
  1146.  
  1147.              The sequence number MUST be incremented every time updated
  1148.              information is sent out on a WAN.  The sequence number
  1149.              wraps round at 65535.
  1150.  
  1151.              When a triggered acknowledgement is sent the sequence
  1152.              number is set to the same value as the triggered response
  1153.              packet being acknowledged.
  1154.  
  1155.              The sequence number MUST be identical over fragments.  If a
  1156.              fragment is retransmitted the sequence number MUST not
  1157.              change.
  1158.  
  1159.    FRAGMENT NUMBER
  1160.  
  1161.              The fragment number is one for the first fragment of a
  1162.              routing update, and is incremented for each subsequent
  1163.              fragment.  A fragment can contain up to 50 routing entries.
  1164.  
  1165.              When a triggered acknowledgement is sent the fragment
  1166.              number is set to the same value as the triggered response
  1167.              packet being acknowledged.
  1168.  
  1169.    NUMBER OF FRAGMENTS
  1170.  
  1171.              In a triggered response packet this indicates the number of
  1172.  
  1173.  
  1174.  
  1175. Meyer                                                          [Page 21]
  1176.  
  1177. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1178.  
  1179.  
  1180.              packets required to complete the routing update.
  1181.  
  1182.              This field has no relevance for triggered acknowledgement
  1183.              packets so should be set to zero.
  1184.  
  1185.    For triggered response packets the rest of the datagram contains a
  1186.    list of networks, with information about each.  Each entry in this
  1187.    list contains a destination network, and the number of hops and
  1188.    number of ticks for each.
  1189.  
  1190.    The maximum datagram size is 406 octets, excluding the IPX header (a
  1191.    further 30 octets).
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231. Meyer                                                          [Page 22]
  1232.  
  1233. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1234.  
  1235.  
  1236. 6. Netware Service Advertising Protocol
  1237.  
  1238.    This section should be read in conjunction with references [3], since
  1239.    it only describes differences from the specification.
  1240.  
  1241.    Netware [3] also supports a mechanism that allows servers on an
  1242.    internetwork to advertise their services by name and type using the
  1243.    Service Advertising Protocol (SAP) which runs over the Internetwork
  1244.    Packet Exchange (IPX) protocol using socket number 452h.
  1245.  
  1246.    SAP operates on similar principals to running RIP.  Routers act as
  1247.    SAP agents, collecting service information from different networks
  1248.    and relay it to interested parties.
  1249.  
  1250.    To support the triggered update mechanism outlined in this proposal
  1251.    the packet format for Netware SAP is modified as shown in Figure 4.
  1252.  
  1253.    Every Service Advertising Protocol datagram contains the following:
  1254.  
  1255.    SAP OPERATION
  1256.  
  1257.              Operations supported in standard Netware SAP are: general
  1258.              service query (1), general service response (2), nearest
  1259.              service query (3) and nearest service response (4).
  1260.  
  1261.              The fields sequence number, fragment number and number of
  1262.              fragments MUST NOT be included in packets with these opera-
  1263.              tion values.
  1264.  
  1265.              The following new operations are required:
  1266.  
  1267.        TRIGGERED GENERAL SERVICE QUERY (6)
  1268.  
  1269.                  A request for the responding system to send the identi-
  1270.                  ties of all servers of all types.
  1271.  
  1272.                  Only the first 2 octets of the packet format shown in
  1273.                  figure 4 are sent, since all service types are implied
  1274.                  by this request type.
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287. Meyer                                                          [Page 23]
  1288.  
  1289. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1290.  
  1291.  
  1292.  
  1293.      0                   1         1
  1294.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1295.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1296.      |       operation (2)           |
  1297.      +---------------+---------------+
  1298.  
  1299.         The following new fields are inserted for some operations
  1300.  
  1301.      0                   1                   2                   3 3
  1302.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1303.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1304.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  1305.      +-------------------------------+-------------------------------+
  1306.  
  1307.            Followed by up to 8 service entries (each 66 octets)
  1308.  
  1309.      0                   1                   2                   3 3
  1310.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1311.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1312.      |                       Service Type (4)                        |
  1313.      +---------------------------------------------------------------+
  1314.      |                       Service Name (48)                       |
  1315.      +                                                               +
  1316.                                   .
  1317.      |                            .                                  |
  1318.      +---------------------------------------------------------------+
  1319.      |                       Network Address (4)                     |
  1320.      +---------------------------------------------------------------+
  1321.      |                        Node Address (6)                       |
  1322.      +                               +-------------------------------+
  1323.      |                               |      Socket Address (2)       |
  1324.      +---------------------------------------------------------------+
  1325.      |       Hops to Server (2)      |
  1326.      +-------------------------------+
  1327.                                      .
  1328.                                      .
  1329.  
  1330.      The format of a Netware SAP datagram in octets, with each tick mark
  1331.      representing one bit.  All fields are in network order.
  1332.  
  1333.      The four octets: sequence  number  (2),  fragment  number  (1)  and
  1334.      number of fragments (1) are not present in the original SAP specif-
  1335.      ication.  They are only present if operation takes the values 7  or
  1336.      8.
  1337.  
  1338.  
  1339.         Figure 4.   Netware Service Advertising Protocol packet format
  1340.  
  1341.  
  1342.  
  1343. Meyer                                                          [Page 24]
  1344.  
  1345. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1346.  
  1347.  
  1348.        TRIGGERED GENERAL SERVICE RESPONSE (7)
  1349.  
  1350.                  A message containing all of the sender's services
  1351.                  table, excluding those entries learned from the inter-
  1352.                  face to which the service advertising information is
  1353.                  being sent out.
  1354.  
  1355.                  This message may be sent in response to a triggered
  1356.                  general service query, or it may be an update message
  1357.                  resulting from a change in the service advertising
  1358.                  database.
  1359.  
  1360.        TRIGGERED GENERAL SERVICE ACKNOWLEDGEMENT (8)
  1361.  
  1362.                  A message sent in response to every triggered general
  1363.                  service response packet received.
  1364.  
  1365.                  Only the first 6 octets of the packet format shown in
  1366.                  figure 4 are sent.
  1367.  
  1368.    SEQUENCE NUMBER
  1369.  
  1370.              This is a new field inserted if operation takes the values
  1371.              7 or 8.
  1372.  
  1373.              The sequence number MUST be incremented every time updated
  1374.              information is sent out on a WAN.  The sequence number
  1375.              wraps round at 65535.
  1376.  
  1377.              When a triggered general service acknowledgement is sent
  1378.              the sequence number is set to the same value as the trig-
  1379.              gered general service response packet being acknowledged.
  1380.  
  1381.              The sequence number MUST be identical over fragments.  If a
  1382.              fragment is retransmitted the sequence number MUST not
  1383.              change.
  1384.  
  1385.    FRAGMENT NUMBER
  1386.  
  1387.              The fragment number is one for the first fragment of a
  1388.              triggered general service response update, and is incre-
  1389.              mented for each subsequent fragment.  A fragment can con-
  1390.              tain up to 8 service entries.
  1391.  
  1392.              When a triggered general service acknowledgement is sent,
  1393.              the fragment number is set to the same value as the trig-
  1394.              gered general service response packet being acknowledged.
  1395.  
  1396.  
  1397.  
  1398.  
  1399. Meyer                                                          [Page 25]
  1400.  
  1401. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1402.  
  1403.  
  1404.    NUMBER OF FRAGMENTS
  1405.  
  1406.              In a triggered response packet this indicates the number of
  1407.              packets required to complete the service update.
  1408.  
  1409.              This field has no relevance for triggered acknowledgement
  1410.              packets so should be set to zero.
  1411.  
  1412.    For triggered general service response packets the rest of the
  1413.    datagram contains a list of services, with information about each.
  1414.    Each entry in this list contains the service type, service name, full
  1415.    address (network, node and socket), and the number of hops to the
  1416.    server.
  1417.  
  1418.    The maximum datagram size is 534 octets, excluding the IPX header (a
  1419.    further 30 octets).
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455. Meyer                                                          [Page 26]
  1456.  
  1457. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1458.  
  1459.  
  1460. 7. Timers
  1461.  
  1462.    A number of timers are supported to handle the triggered update
  1463.    mechanism:
  1464.  
  1465.    o  Database timers.
  1466.  
  1467.    o  Retransmission timer.
  1468.  
  1469.    o  Reassembly timer.
  1470.  
  1471.    In this section appropriate timer values for IP RIP are suggested.
  1472.  
  1473.    For other routing protocols, only the database timer should need to
  1474.    take different values.  The database timer values are chosen to match
  1475.    equivalent timer operation for using the protocol on a LAN.  The
  1476.    behavior of a routing entry when a timer is running becomes indistin-
  1477.    guishable from a routing entry learned from a broadcast update.
  1478.  
  1479.    Implementations MAY make timer values configurable - and hence dif-
  1480.    ferent from the values suggested here - but interoperability requires
  1481.    that all timers on a sub-network should be the same in all routers.
  1482.  
  1483. 7.1 Database Timers
  1484.  
  1485.    Routes learned by a triggered response command (7) are normally con-
  1486.    sidered to be permanent - that is they do NOT time out unless
  1487.    activated by one of the following events:
  1488.  
  1489.    o  If the circuit manager indicates that a next hop router cannot be
  1490.       contacted, all routes learned from that next hop router should
  1491.       start timing out as if they had (just) been learned from a conven-
  1492.       tional response command (2).
  1493.  
  1494.       Namely each route exists while the database entry timer is running
  1495.       and is advertised on other interfaces as if still present.  The
  1496.       route is then advertised as unreachable while a further hold down
  1497.       timer is allowed to expire, at which point the entry is deleted.
  1498.  
  1499.       If the circuit manager indicates that the next hop router can be
  1500.       contacted while the database entry timer is running, the routes
  1501.       are reinstated as permanent entries.
  1502.  
  1503.       If the database entry timer has expired and the circuit manager
  1504.       indicates that the next hop router is reachable, the routing
  1505.       application MUST issue a triggered request.  The routes will be
  1506.       reinstated on the basis of any triggered response packet(s)
  1507.       received.
  1508.  
  1509.  
  1510.  
  1511. Meyer                                                          [Page 27]
  1512.  
  1513. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1514.  
  1515.  
  1516.    o  If a triggered response packet is received in which a route is
  1517.       marked unreachable, the hold down timer MUST be started and the
  1518.       entry is advertised as unreachable on other interfaces.  On expiry
  1519.       of the hold down timer the entry is deleted.
  1520.  
  1521.       If a triggered response packet is received in which an existing
  1522.       route is ABSENT, the hold down timer MUST also be started and the
  1523.       entry is advertised as unreachable on other interfaces.  On expiry
  1524.       of the hold down timer the entry is deleted.
  1525.  
  1526.    For IP RIP the hold down timer should always run for 120 seconds, to
  1527.    be consistent with RIP usage on broadcast networks.  The database
  1528.    entry timer should by default run for 180 seconds.  The network can
  1529.    be made more responsive by reducing the database entry timer value.
  1530.    However making this timer too short can lead to network instabili-
  1531.    ties.  The duration of the database entry timer allows a period of
  1532.    grace in which contention for network resources can be resolved by
  1533.    the circuit manager.
  1534.  
  1535. 7.2 Retransmission Timer
  1536.  
  1537.    The routing task runs a retransmission timer:
  1538.  
  1539.    o  When a triggered request is sent it will be retransmitted periodi-
  1540.       cally while a triggered response packet is not received.
  1541.  
  1542.    o  When a triggered response is sent a note of the sequence number
  1543.       and fragment number(s) of the routing update is kept.
  1544.  
  1545.       Fragments will be retransmitted at periodic intervals while a
  1546.       triggered acknowledgement packet is not received for the appropri-
  1547.       ate fragment.
  1548.  
  1549.    With call set up time on the WAN being of the order of a second, a
  1550.    value of 5 seconds for the retransmission timer is appropriate.
  1551.  
  1552.    If no response is received after 10 retransmissions, routes via the
  1553.    next hop router are marked as unreachable, the hold down timer MUST
  1554.    be started and the entry is advertised as unreachable on other inter-
  1555.    faces.  On expiry of the hold down timer the entry is deleted.
  1556.  
  1557.    The next hop router is then polled using a triggered request packet
  1558.    at 60 second intervals.  If a response is received the routers should
  1559.    exchange routing information using triggered response packets.
  1560.  
  1561.    It may not be desirable to poll indefinitely, since a lack of
  1562.    response (when a circuit is up) is most likely caused by incorrect
  1563.    configuration of the next hop router.  An administrator definable
  1564.  
  1565.  
  1566.  
  1567. Meyer                                                          [Page 28]
  1568.  
  1569. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1570.  
  1571.  
  1572.    number of polls (5 or greater) should be provided.
  1573.  
  1574.    If the circuit manager indicates that the next hop router is unreach-
  1575.    able, the retransmission is suppressed until the circuit manager
  1576.    indicates that the next hop router is reachable once more.  Counting
  1577.    of the number of retransmissions continues from where it left off
  1578.    prior to the circuit down indication.
  1579.  
  1580. 7.3 Reassembly Timer
  1581.  
  1582.    When a router receives a triggered response update it MUST ack-
  1583.    nowledge each fragment.  If the routing update is fragmented over
  1584.    more than one packet, the receiving router MUST store the fragments
  1585.    until ALL fragments are received.
  1586.  
  1587.    On receiving the first fragment a timer should be started.  If all
  1588.    fragments of the routing update are not received within that period
  1589.    they are discarded - and a triggered request is sent back to the ori-
  1590.    ginator (with retransmissions if necessary).  The originator MUST
  1591.    then resend ALL triggered response fragments
  1592.  
  1593.    The reassembly timer should be set to four times the value of the
  1594.    retransmission timer.  With a suggested retransmission timer value of
  1595.    5 seconds, the suggested reassembly timer value SHOULD be 20 seconds.
  1596.  
  1597.    Implementations MAY allow the reassembly timer and retransmission
  1598.    timer to be configurable (in the 1:4 ratio), but interoperability
  1599.    will be compromised on WANs where all participating routers DO NOT
  1600.    support the same values for these timers.
  1601.  
  1602.    Fragments MUST also be discarded if a new fragment with a different
  1603.    sequence number is received.  A triggered request MUST not be sent in
  1604.    this instance.
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623. Meyer                                                          [Page 29]
  1624.  
  1625. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1626.  
  1627.  
  1628. 8. Implementation Considerations
  1629.  
  1630.    In the implementation described in this memo, it is assumed that
  1631.    there is a close binding between the circuit manager and the routing
  1632.    applications - that they are in some way the same 'program'.  This is
  1633.    not necessarily true of all products which are routers.
  1634.  
  1635.    In particular there are UNIX host implementations in which the rout-
  1636.    ing application is distinct from the kernel, where the circuit
  1637.    manager is likely to be installed.  In such systems it is possible to
  1638.    stop (or crash) the routing applications independently of what is
  1639.    happening in the kernel.
  1640.  
  1641.    Other implementations might have the circuit manager on a separate
  1642.    card which again may give the circuit manager a life of its own.
  1643.  
  1644.    In implementations where the applications and circuit manager have
  1645.    independent lives, a keep-alive mechanism MUST be provided between
  1646.    the applications and the circuit manager, so that if the application
  1647.    or network layer dies and is subsequently re-started they can re-
  1648.    synchronize their state tables.
  1649.  
  1650.    Ideally when an application dies, the circuit manager should close
  1651.    all existing VCs appropriate to the application and make no further
  1652.    outgoing calls and reject incoming calls until the application is
  1653.    running again.
  1654.  
  1655.    If the circuit manager is using some form of encapsulation, several
  1656.    applications may be sharing the same VC.  If this is the case the
  1657.    circuit manager may wish to filter out datagrams for the appropriate
  1658.    network layer if only one of the applications is affected.  But this
  1659.    is not an ideal solution.
  1660.  
  1661.    Conversely if the application believes the circuit manager has died,
  1662.    it should mark all routes via the circuit manager as unreachable and
  1663.    advertise them on other interfaces for the duration of the hold down
  1664.    timer before deleting them.
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679. Meyer                                                          [Page 30]
  1680.  
  1681. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1682.  
  1683.  
  1684. 9. Security Considerations
  1685.  
  1686.    Security is provided my a number of aspects:
  1687.  
  1688.    o  The circuit manager is required to be provided with a list of phy-
  1689.       sical addresses to enable it to establish a call to the next hop
  1690.       router on an X.25 SVC or ISDN B-channel.
  1691.  
  1692.       The circuit manager SHOULD only allow incoming calls to be
  1693.       accepted from the same well defined list of routers.  The circuit
  1694.       manager MAY enforce additional security by not accepting incoming
  1695.       calls.
  1696.  
  1697.       Elsewhere in the system there will be a set of logical address and
  1698.       physical address tuples to enable the network protocols to run
  1699.       over the correct circuit.  This may be a lookup table, or in some
  1700.       instances there may be an algorithmic conversion between the two
  1701.       addresses.
  1702.  
  1703.    o  The routing (or service advertising) task MUST be provided with a
  1704.       list of logical addresses to which triggered updates are to be
  1705.       sent on the WAN.  The list MAY be a subset of the list of next hop
  1706.       routers maintained by the circuit manager.
  1707.  
  1708.       There MAY also be a separate list of next hop routers to which
  1709.       traditional broadcasts of routing (or service advertising) updates
  1710.       should be sent.  Next hop routers omitted from either list are
  1711.       assumed to be not participating in routing (or service advertis-
  1712.       ing) updates.
  1713.  
  1714.       The list (or lists) doubles as a list of routers from which rout-
  1715.       ing updates are allowed to be received from the WAN.  Any routing
  1716.       information received from a router not in the appropriate list
  1717.       MUST be discarded.
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735. Meyer                                                          [Page 31]
  1736.  
  1737. Internet Draft     Routing over Demand Circuits - RIP           May 1993
  1738.  
  1739.  
  1740. References
  1741.  
  1742.  
  1743.    [1]  Hedrick. C., "Routing Information Protocol", RFC 1058, Rutgers
  1744.         University, June 1988.
  1745.  
  1746.    [2]  Malkin. G., "RIP Version 2 - Carrying Additional Information",
  1747.         RFC 1388 Draft, Xylogics, 1992.
  1748.  
  1749.    [3]  Novell Incorporated., "IPX Router Specification", Version 1.10,
  1750.         October 1992.
  1751.  
  1752.    [4]  Xerox Corporation., "Internet Transport Protocols", Xerox System
  1753.         Integration Standard XSIS 028112, December 1981.
  1754.  
  1755.    [5]  Malis. A., Robinson. D., and Ullmann. R., "Multiprotocol Inter-
  1756.         connect on X.25 and ISDN in the Packet Mode", RFC 1356, BBN Com-
  1757.         munications, Computervision Systems Integration and Process
  1758.         Software Corporation.
  1759.  
  1760. Author's  Address:
  1761.  
  1762.    Gerry Meyer
  1763.    Spider Systems
  1764.    Stanwell Street
  1765.    Edinburgh EH6 5NG
  1766.    Scotland, UK
  1767.  
  1768.    Phone: (UK) 31 554 9424
  1769.    Fax:   (UK) 31 554 0649
  1770.    Email: gerry@spider.co.uk
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791. Meyer                                                          [Page 32]
  1792.  
  1793.